/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.retail.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 消费者退换货Entity
 * @author jyangye
 * @version 2018-03-14
 */
public class VivoConsumerExchangeOrder extends DataEntity<VivoConsumerExchangeOrder> {
	
	private static final long serialVersionUID = 1L;
	private String waresId;		// 商品ID
	private String retailDealerId;		// 零售经销商ID
	private String retailRelationId;		// 零售经销商关系ID
	private String retailWarehouseId;		// 零售仓库ID
	private String exchangeDealerId;		// 换货经销商ID
	private String exchangeRelationId;		// 换货经销商关系ID
	private String exchangeWarehouseId;		// 换货仓库ID
	private String orderCode;		// 订单编号
	private String userId;		// 用户ID
	private String handEmployeeId;		// 经手人员工ID
	private String orderState;		// 单据状态(草稿、正常)
	private String verifyState;		// 本级审核状态(无须审核,未审核,正在审核,审核未通过,审核已通过)
	private Date makeDate;		// 制单日期
	private String unitPrice;		// 单价
	private String salesCount;		// 退货数量
	private Date beginMakeDate;		// 开始 制单日期
	private Date endMakeDate;		// 结束 制单日期
	
	public VivoConsumerExchangeOrder() {
		super();
	}

	public VivoConsumerExchangeOrder(String id){
		super(id);
	}

	@Length(min=0, max=11, message="商品ID长度必须介于 0 和 11 之间")
	@ExcelField(title="商品ID", align=2, sort=20)
	public String getWaresId() {
		return waresId;
	}

	public void setWaresId(String waresId) {
		this.waresId = waresId;
	}
	
	@Length(min=0, max=11, message="零售经销商ID长度必须介于 0 和 11 之间")
	@ExcelField(title="零售经销商ID", align=2, sort=30)
	public String getRetailDealerId() {
		return retailDealerId;
	}

	public void setRetailDealerId(String retailDealerId) {
		this.retailDealerId = retailDealerId;
	}
	
	@Length(min=0, max=11, message="零售经销商关系ID长度必须介于 0 和 11 之间")
	@ExcelField(title="零售经销商关系ID", align=2, sort=40)
	public String getRetailRelationId() {
		return retailRelationId;
	}

	public void setRetailRelationId(String retailRelationId) {
		this.retailRelationId = retailRelationId;
	}
	
	@Length(min=0, max=11, message="零售仓库ID长度必须介于 0 和 11 之间")
	@ExcelField(title="零售仓库ID", align=2, sort=50)
	public String getRetailWarehouseId() {
		return retailWarehouseId;
	}

	public void setRetailWarehouseId(String retailWarehouseId) {
		this.retailWarehouseId = retailWarehouseId;
	}
	
	@Length(min=0, max=11, message="换货经销商ID长度必须介于 0 和 11 之间")
	@ExcelField(title="换货经销商ID", align=2, sort=60)
	public String getExchangeDealerId() {
		return exchangeDealerId;
	}

	public void setExchangeDealerId(String exchangeDealerId) {
		this.exchangeDealerId = exchangeDealerId;
	}
	
	@Length(min=0, max=11, message="换货经销商关系ID长度必须介于 0 和 11 之间")
	@ExcelField(title="换货经销商关系ID", align=2, sort=70)
	public String getExchangeRelationId() {
		return exchangeRelationId;
	}

	public void setExchangeRelationId(String exchangeRelationId) {
		this.exchangeRelationId = exchangeRelationId;
	}
	
	@Length(min=0, max=11, message="换货仓库ID长度必须介于 0 和 11 之间")
	@ExcelField(title="换货仓库ID", align=2, sort=80)
	public String getExchangeWarehouseId() {
		return exchangeWarehouseId;
	}

	public void setExchangeWarehouseId(String exchangeWarehouseId) {
		this.exchangeWarehouseId = exchangeWarehouseId;
	}
	
	@Length(min=0, max=14, message="订单编号长度必须介于 0 和 14 之间")
	@ExcelField(title="订单编号", align=2, sort=90)
	public String getOrderCode() {
		return orderCode;
	}

	public void setOrderCode(String orderCode) {
		this.orderCode = orderCode;
	}
	
	@Length(min=0, max=32, message="用户ID长度必须介于 0 和 32 之间")
	@ExcelField(title="用户ID", align=2, sort=100)
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}
	
	@Length(min=0, max=32, message="经手人员工ID长度必须介于 0 和 32 之间")
	@ExcelField(title="经手人员工ID", align=2, sort=110)
	public String getHandEmployeeId() {
		return handEmployeeId;
	}

	public void setHandEmployeeId(String handEmployeeId) {
		this.handEmployeeId = handEmployeeId;
	}
	
	@Length(min=0, max=1, message="单据状态(草稿、正常)长度必须介于 0 和 1 之间")
	@ExcelField(title="单据状态(草稿、正常)", align=2, sort=120)
	public String getOrderState() {
		return orderState;
	}

	public void setOrderState(String orderState) {
		this.orderState = orderState;
	}
	
	@Length(min=0, max=1, message="本级审核状态(无须审核,未审核,正在审核,审核未通过,审核已通过)长度必须介于 0 和 1 之间")
	@ExcelField(title="本级审核状态(无须审核,未审核,正在审核,审核未通过,审核已通过)", align=2, sort=130)
	public String getVerifyState() {
		return verifyState;
	}

	public void setVerifyState(String verifyState) {
		this.verifyState = verifyState;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="制单日期", align=2, sort=140)
	public Date getMakeDate() {
		return makeDate;
	}

	public void setMakeDate(Date makeDate) {
		this.makeDate = makeDate;
	}
	
	@ExcelField(title="单价", align=2, sort=150)
	public String getUnitPrice() {
		return unitPrice;
	}

	public void setUnitPrice(String unitPrice) {
		this.unitPrice = unitPrice;
	}
	
	@Length(min=0, max=11, message="退货数量长度必须介于 0 和 11 之间")
	@ExcelField(title="退货数量", align=2, sort=160)
	public String getSalesCount() {
		return salesCount;
	}

	public void setSalesCount(String salesCount) {
		this.salesCount = salesCount;
	}
	
	public Date getBeginMakeDate() {
		return beginMakeDate;
	}

	public void setBeginMakeDate(Date beginMakeDate) {
		this.beginMakeDate = beginMakeDate;
	}
	
	public Date getEndMakeDate() {
		return endMakeDate;
	}

	public void setEndMakeDate(Date endMakeDate) {
		this.endMakeDate = endMakeDate;
	}
		
}